cmake_minimum_required(VERSION 3.16)
project(manual VERSION 1.0 LANGUAGES C CXX)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

# Set up AUTOMOC and some sensible defaults for runtime execution
# When using Qt 6.3, you can replace the code block below with
# qt_standard_project_setup()
set(CMAKE_AUTOMOC ON)
include(GNUInstallDirs)

find_package(QT NAMES Qt5 Qt6 REQUIRED COMPONENTS Core)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS 3DAnimation 3DCore 3DExtras 3DInput 3DLogic 3DQuick 3DQuickExtras 3DQuickRender 3DRender Gui Qml Quick QuickWidgets Widgets)


add_subdirectory(assimp)
add_subdirectory(bigscene-cpp)
add_subdirectory(bigmodel-qml)
add_subdirectory(bigscene-instanced-qml)
add_subdirectory(clip-planes-qml)
add_subdirectory(component-changes)
add_subdirectory(custom-mesh-cpp)
add_subdirectory(custom-mesh-cpp-indirect)
add_subdirectory(custom-mesh-qml)
add_subdirectory(custom-mesh-update-data-cpp)
add_subdirectory(custom-mesh-update-data-qml)
add_subdirectory(cylinder-cpp)
add_subdirectory(cylinder-parent-test)
add_subdirectory(cylinder-qml)
add_subdirectory(deferred-renderer-cpp)
add_subdirectory(deferred-renderer-qml)
add_subdirectory(downloading)
add_subdirectory(dragging)
add_subdirectory(dynamicscene-cpp)
add_subdirectory(enabled-qml)
add_subdirectory(gltf)
add_subdirectory(gooch-qml)
add_subdirectory(keyboardinput-qml)
add_subdirectory(loader-qml)
add_subdirectory(lod)
add_subdirectory(mouseinput-qml)
add_subdirectory(multiplewindows-qml)
add_subdirectory(picking-qml)
add_subdirectory(plasma)
add_subdirectory(pointlinesize)
add_subdirectory(scene3d-loader)
add_subdirectory(simple-shaders-qml)
add_subdirectory(skybox)
add_subdirectory(tessellation-modes)
add_subdirectory(transforms-qml)
add_subdirectory(spritegrid)
add_subdirectory(transparency-qml)
add_subdirectory(transparency-qml-scene3d)
add_subdirectory(rendercapture-qml)
add_subdirectory(additional-attributes-qml)
add_subdirectory(dynamic-model-loader-qml)
add_subdirectory(buffercapture-qml)
add_subdirectory(render-qml-to-texture)
add_subdirectory(render-qml-to-texture-qml)
add_subdirectory(video-texture-qml)
add_subdirectory(animation-keyframe-simple)
add_subdirectory(animation-keyframe-blendtree)
add_subdirectory(distancefieldtext)
add_subdirectory(mesh-morphing)
add_subdirectory(anim-viewer)
add_subdirectory(animation-keyframe-programmatic)
add_subdirectory(layerfilter-qml)
add_subdirectory(skinned-mesh)
add_subdirectory(rigged-simple)
add_subdirectory(proximityfilter)
add_subdirectory(rendercapture-qml-fbo)
add_subdirectory(blitframebuffer-qml)
add_subdirectory(raycasting-qml)
add_subdirectory(shared_texture_image)
add_subdirectory(texture_property_updates)
add_subdirectory(qtbug-72236)
add_subdirectory(qtbug-76766)
if(TARGET Qt::Widgets)
    add_subdirectory(assimp-cpp)
    add_subdirectory(paintedtexture-cpp)
    add_subdirectory(rendercapture-cpp)
endif()
if(TARGET Qt${QT_VERSION_MAJOR}::QuickWidgets)
    add_subdirectory(quickwidget-switch)
endif()
